package com.dys.testio02;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

/**
 * @className: src.main.java.com.dys.testio02.FileWriterTest
 * @description: src.main.java.com.dys.testio02
 * @author: pine cone
 * @version: v1.0.0
 * @createTime: 2024/08/14 下午10:20
 */
public class FileWriterTest {
    /**
     * 这是一个main()方法,是应用程序的入口
     *
     * @param args 方法的形参列表,是一个字符串数组,包含了从命令行传递给程序的参数
     */
    public static void main(String[] args) throws IOException {
        new FileWriterTest().testAppend();
    }

    /**
     * 一个字符一个字符的向外输出：，写入文件，覆盖
     *
     * @throws IOException
     */
    public void testWrite() throws IOException {
        // 1.有一个目标文件
        File f1 = new File("E:/demo.txt");
        // 2.将FileWriter写到源文件上
        FileWriter fw = new FileWriter(f1, false);
        // 3.开始写操作
        String str = "hello world";
        for (int i = 0; i < str.length(); i++) {
            fw.write(str.charAt(i));
        }
        // 4.关流
        fw.close();
    }

    /**
     * 一个字符一个字符写入文件，追加
     *
     * @throws IOException
     */
    public void testWriteAppend() throws IOException {
        // 1.有一个目标文件
        File f1 = new File("E:/demo.txt");
        // 2.将FileWriter写到源文件上
        FileWriter fw = new FileWriter(f1, true);
        // 3.开始写操作
        String str = "Java";
        for (int i = 0; i < str.length(); i++) {
            fw.write(str.charAt(i));
        }
        // 4.关流
        fw.close();
    }

    /**
     * 利用缓冲数组，向外输出，写入文件追加
     *
     * @throws IOException
     */
    public void testAppend() throws IOException {
        // 1.有个目标文件：
        File f1 = new File("E:/demo.txt");
        // 2.FileWriter管怼到文件上去：
        FileWriter fw = new FileWriter(f1, true);
        // 3.开始动作：输出动作：
        // 一个字符一个字符的往外输出：
        String str = "你好中国";
        char[] chs = str.toCharArray();
        // 4.关闭流：
        fw.write(chs);
        fw.close();
    }


}
